home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / metal / MetalFileChooserUI$DirectoryComboBoxModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  2.7 KB  |  108 lines

  1. package javax.swing.plaf.metal;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.Vector;
  6. import javax.swing.AbstractListModel;
  7. import javax.swing.ComboBoxModel;
  8. import javax.swing.plaf.basic.BasicFileChooserUI;
  9.  
  10. public class MetalFileChooserUI$DirectoryComboBoxModel extends AbstractListModel implements ComboBoxModel {
  11.    // $FF: synthetic field
  12.    private final MetalFileChooserUI this$0;
  13.    Vector directories;
  14.    int topIndex;
  15.    int pathCount;
  16.    File selectedDirectory;
  17.  
  18.    public MetalFileChooserUI$DirectoryComboBoxModel(MetalFileChooserUI var1) {
  19.       this.this$0 = var1;
  20.       this.directories = new Vector();
  21.       this.topIndex = -1;
  22.       this.pathCount = 0;
  23.       this.selectedDirectory = null;
  24.       File[] var2 = ((BasicFileChooserUI)var1).getFileChooser().getFileSystemView().getRoots();
  25.  
  26.       for(int var3 = 0; var3 < var2.length; ++var3) {
  27.          this.directories.addElement(var2[var3]);
  28.       }
  29.  
  30.       this.addItem(((BasicFileChooserUI)var1).getFileChooser().getCurrentDirectory());
  31.    }
  32.  
  33.    // $FF: synthetic method
  34.    static void access$0(MetalFileChooserUI$DirectoryComboBoxModel var0, File var1) {
  35.       var0.addItem(var1);
  36.    }
  37.  
  38.    private void addItem(File var1) {
  39.       if (var1 != null) {
  40.          if (this.selectedDirectory != null) {
  41.             this.removeSelectedDirectory();
  42.          }
  43.  
  44.          Object var2 = null;
  45.  
  46.          try {
  47.             var7 = this.this$0.getFileChooser().getFileSystemView().createFileObject(var1.getCanonicalPath());
  48.          } catch (IOException var6) {
  49.             return;
  50.          }
  51.  
  52.          File var3 = var7;
  53.  
  54.          Vector var4;
  55.          for(var4 = new Vector(10); var3.getParent() != null; var3 = this.this$0.getFileChooser().getFileSystemView().createFileObject(var3.getParent())) {
  56.             var4.addElement(var3);
  57.             if (this.directories.contains(var3)) {
  58.                this.topIndex = this.directories.indexOf(var3);
  59.             }
  60.          }
  61.  
  62.          this.pathCount = var4.size();
  63.          if (this.topIndex < 0) {
  64.             if (this.directories.contains(var3)) {
  65.                this.topIndex = this.directories.indexOf(var3);
  66.             } else {
  67.                this.directories.addElement(var3);
  68.             }
  69.          }
  70.  
  71.          for(int var5 = 0; var5 < var4.size(); ++var5) {
  72.             this.directories.insertElementAt(var4.elementAt(var5), this.topIndex + 1);
  73.          }
  74.  
  75.          this.setSelectedItem(var7);
  76.       }
  77.    }
  78.  
  79.    public Object getElementAt(int var1) {
  80.       return this.directories.elementAt(var1);
  81.    }
  82.  
  83.    public Object getSelectedItem() {
  84.       return this.selectedDirectory;
  85.    }
  86.  
  87.    public int getSize() {
  88.       return this.directories.size();
  89.    }
  90.  
  91.    private void removeSelectedDirectory() {
  92.       if (this.topIndex >= 0) {
  93.          for(int var1 = this.topIndex; var1 < this.topIndex + this.pathCount; ++var1) {
  94.             this.directories.removeElementAt(this.topIndex + 1);
  95.          }
  96.       }
  97.  
  98.       this.topIndex = -1;
  99.       this.pathCount = 0;
  100.       this.selectedDirectory = null;
  101.    }
  102.  
  103.    public void setSelectedItem(Object var1) {
  104.       this.selectedDirectory = (File)var1;
  105.       ((AbstractListModel)this).fireContentsChanged(this, -1, -1);
  106.    }
  107. }
  108.